package cn.doit.scala.day04

/**
 * @DATE 2021/12/29/16:01
 * @Author MDK
 * @Version 2021.2.2
 * */
object C11_Fold {
  def main(args: Array[String]): Unit = {
    val list: List[Int] = List[Int](1, 2, 3, 4, 5)
    //方法的参数列表是两个  这类方法称为柯里化的方法
    //列表一  默认值只参与一次运算
    //列表二  聚合计算逻辑  和reduce一样
    //10+1)+2)+3)+4)+5)  从左至右的运算
    val res = list.fold(10)((x1, x2) => x1 + x2)
    println(res)

    val list1: List[String] = List[String]("a", "b", "c", "d")
    val tuple = list1.foldRight("hello")(_ +"-"+_)
    val tuple2 = list1.foldLeft("hello")(_ +"-"+_)
    println(tuple)
    println(tuple2)



  }
}
